All of the material in this patent application is subject to copyright protection under the copyright laws of the United States and of other countries. As of the first effective filing date of the present application, this material is protected as unpublished material. However, permission to copy this material is hereby granted to the extent that the copyright owner has no objection to the facsimile reproduction by anyone of the patent documentation or patent disclosure, as it appears in the United States Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
Not Applicable
This invention pertains to concurrent distribution of data to a variable set of users on a network. More particularly the invention is a method and software for setting up a virtual network within a network for concurrent distribution of one or more data items that avoids overloading any specific data link in the network, e.g., the data link directly connected to the data source. The invention may be used to broadcast an audio stream, e.g., a radio broadcast over the Internet.
In recent years the Internet has had the effect of greatly facilitating communication through a wide variety of media, e.g., text, images, sound, video, data, design documents. Non real time communication over the Internet includes, news groups, static web pages, list servers, and E-mail (variable latency).
Near real time communication includes Internet Relay Chat (IRC), and multicasting. Multicasting, which is increasing in popularity, is generally speaking, the distribution of a data file or continuous (indeterminate length) data feed in near real time, nearly concurrently, (with variable lags depending on the data transit time in the network), to a group of client devices (e.g., computers operated by users).
The data may,take the form of digitally encoded audio. The Moving Pictures Expert Group (MPEG) Layer III standard (MP3), defines an encoding scheme that provides a good quality and compression audio encoding standard.
The capability to transmit high quality audio over the Internet, has led to the development of Internet radio. Internet radio makes technically and economically feasible to operate radio stations with a narrow topical focus, and an audience sparsely distributed over a large geographic area to be operated. Cost, and government regulations would make it difficult to operate such stations using conventional analog wireless radio technology.
Another type of data discussed in connection with multicasting are slide presentations, i.e., a sequence of images, which may also be accompanied by a digital audio oration.
As the data carrying capacity (bandwidth) of the Internet increases, for example by proliferation of fiber optic, and digital subscriber line (DSL) data links to remote users, multi-casting of video can be expected to come into use.
One type of currently available form of multicasting systems is exemplified by the Real Audio system including Sold by Real Networks, of Seattle, Wash. This system includes servers and clients. A broadcaster such as an Internet based radio station, operates a Real Audio server application on its server computer. Users wishing to listen to the radio station would run a Real Audio client which would connect through the Internet to the Real Audio server, receive a stream of compressed digitally encoded audio therefrom which it would decompress, decode and play through the client computers sound system (i.e., sound card and speakers). The encoding system used in the Real Audio system is proprietary. Another similar system which is based on the MP3, standard for encoding audio is provided by the Shoutcast system by America Online of Dulles, Va. A limitation of both of, the above mentioned systems is that the number of clients that can access the audio stream is limited by the data carrying capacity of the connection between the audio server and the network (e.g., Internet) through which the audio stream is distributed.
Mbone is a protocol for establishing a bandwidth efficient multicasting network on the Internet. The system makes use of a range of IP addresses reserved for multicasting, and provides a system for efficiently distributing a multicast data to a plurality of users. In conformance with the protocol an efficient network (e.g., a spanning tree) which avoids duplicative transmissions is set up for transmitting the multicast data from its source, to a set of recipients. In order to participate in the Mbone network, network routers, and hosts must run Mbone specific software. Additionally clients computers must run Mbone compliant applications, and Mbone compliant communication protocol stack software. At this time support of Mbone, e.g., among Internet Service Providers, is not wide spread, so its use by end users is limited.
What is needed is a system and software, that makes it possible for multicasts to be made to a community of recipients, the size of which is not limited by the bandwidth of the connection between the data source and the distribution network (e.g., Internet).
What is further needed is a system for bandwidth efficient multicasting that does not depend on users having access to servers running special multicasting software (e.g., Mbone software).
Briefly, the invention is a system and method for multicasting which includes the steps of receiving a Jth request for receiving a multicast stream by supervisory server application running on a supervisory server from a Jth client running on a Jth computer, transmitting a Jth instance of a portable deployable child host to the Jth computer, establishing a Jth connection between the Jth instance portable deployable child host and an Ith portable deployable host, transmitting a multicast data stream though the Jth connection from the Ith instance of the child host to the Jth instance of the child host, receiving a Kth request for receiving a multicast stream by the supervisory server application from a Kth client running on a Kth computer, transmitting a Kth instance of the portable deployable child host to the Kth computer, establishing a Kth connection between the Kth instance of the portable deployable child host and the Jth instance of the portable deployable child host, transmitting the multicast data stream through the Kth connection from the Jth instance of the child host to the Kth instance of the child host.